package _go

/*剑指 Offer 06. 从尾到头打印链表
难度
简单

133

收藏

分享
切换为英文
接收动态
反馈
输入一个链表的头节点，从尾到头反过来返回每个节点的值（用数组返回）。



示例 1：

输入：head = [1,3,2]
输出：[2,3,1]


限制：

0 <= 链表长度 <= 10000

*/
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reversePrint(head *ListNode) []int {
	if head == nil {
		return []int{}
	}

	ary := []int{}

	for head != nil {
		ary = append(ary, head.Val)
		head = head.Next
	}

	l := len(ary)

	for i, j := 0, l-1; i < j; {
		ary[i], ary[j] = ary[j], ary[i]
		i++
		j--
	}
	return ary
}
